<?php

namespace app\Controllers;

use app\Controllers\BaseController;
use app\Services\IndexService;

class IndexController extends BaseController
{

    /**
     * xxx.com/index/index
     * xxx.com/index.php/index/index
     * main 3938
     */
    public $server;

    public function __construct()
    {
        $this->server = new \app\src\redis\server();
    }


    public function main($argv = [])
    {
        $argc = count($argv);
        //初始化库
        //$this->spt_init($argc, $argv);
        $server = $this->server;

        $server->db->dict->type->keyDup = 100;

        // 检查服务器是否以 Sentinel 模式启动
        $server->sentinel_mode = $this->checkForSentinelMode($argc, $argv);

        // 初始化服务器配置
        initServerConfig($server);
        p("ok", 1);

        // 如果服务器以 Sentinel 模式启动，那么进行 Sentinel 功能相关的初始化
        // 并为要监视的主服务器创建一些相应的数据结构
//        if($server->sentinel_mode){
//            initSentinelConfig();
//            initSentinel();
//        }

        // 检查用户是否指定了配置文件，或者配置选项

        // 将服务器设置为守护进程
        //if (server.daemonize) daemonize();
        // 创建并初始化服务器数据结构
        initServer();

        // 如果服务器是守护进程，那么创建 PID 文件
        //if (server.daemonize) createPidFile();

        // 为服务器进程设置名字

        // 打印 ASCII LOGO

        // 如果服务器不是运行在 SENTINEL 模式，那么执行以下代码
        // 打印问候语
        // 打印内存警告

        // 从 AOF 文件或者 RDB 文件中载入数据
        loadDataFromDisk();

        // 启动集群？

        // 打印 TCP 端口

        // 打印本地套接字端口

        // 检查不正常的 maxmemory 配置

        // 运行事件处理器，一直到服务器关闭为止

        // 服务器关闭，停止事件循环

    }
}
